package com.aaa.mbs.service;

import com.aaa.common.util.Result;
import com.aaa.mbs.entity.IntegrationHistory;
import com.aaa.mbs.entity.Member;
import com.aaa.mbs.entity.Order;

import java.util.List;
import java.util.Map;

/**
 * (Order)表服务接口
 *
 * @author makejava
 * @since 2020-12-05 14:23:58
 */
public interface OrderService {
    /**
     * 按年月统计订单成交收入记录
     * @param yearMonth
     * @return
     */
    Result  LoginLogShowByMonth(String yearMonth);
    /**
     * 自动取消订单功能
     */
    void autoCanncelOrder();

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Order queryById(Integer id);


    /**
     * 通过实体作为筛选条件查询
     *
     * @param order 实例对象
     * @return 对象列表
     */
    Result queryAll(int pageNo, int pageSize, Order order);
    /**
     * 联合查询
     * @param map
     * @return
     */
    Result queryAllMap(int pageNo, int pageSize,Map map);
    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Order> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param order 实例对象
     * @return 实例对象
     */
    Order insert(Order order);

    /**
     * 修改数据
     *
     * @param order 实例对象
     * @return 实例对象
     */
    Order update(Order order);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);
    /**
     * 添加客户订单
     * @param
     * @return
     */
    Result memberOrder(Member member,Double money,Integer carId);
    /**
     * 增加积分封装方法
     * @param member
     * @return
     */
    IntegrationHistory changecount(Member member,Double money);

    /**
     * 会员等级自动变化
     * @param
     * @param
     * @return
     */
    void memberlevel();

    /**
     * 获取租出的，或者预约的所有汽车id    开始时间  结束时间
     * @return
     */
    Result queryByTime();
}